'\" te
.\" Copyright 2006, Sun Microsystems, Inc. All Rights Reserved
.\" Copyright 2018 OmniOS Community Edition (OmniOSce) Association.
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
.\"  See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with
.\" the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH DIGEST 1 "July 3, 2022"
.SH NAME
digest \- calculate a message digest
.SH SYNOPSIS
.nf
\fB/usr/bin/digest\fR \fB-l\fR | [\fB-v\fR] \fB-a\fR \fIalgorithm\fR [\fIfile\fR]...
.fi

.SH DESCRIPTION
The \fBdigest\fR utility calculates the message digest of the given files or
\fBstdin\fR using the algorithm specified. If more than one file is given, each
line of output is the digest of a single file.
.SH OPTIONS
The following options are supported:
.sp
.ne 2
.na
\fB\fB-a\fR \fIalgorithm\fR\fR
.ad
.RS 16n
Specifies the name of the algorithm to use during the encryption or decryption
process. See USAGE, \fBAlgorithms\fR, for details.
.RE

.sp
.ne 2
.na
\fB\fB-l\fR\fR
.ad
.RS 16n
Displays list of algorithms available on the system. This list can change
depending on the configuration of the cryptographic framework.
.RE

.sp
.ne 2
.na
\fB\fB-v\fR\fR
.ad
.RS 16n
Verbose output. Includes the algorithm name and filename in the output.
.RE

.SH USAGE
.SS "Algorithms"
These algorithms are provided by the Cryptographic Framework. Each algorithm
supported by the command is an alias of the PKCS #11 mechanism for easier
access. For example, \fBsha1\fR is an alias to \fBCKM_SHA_1\fR.
.sp
.LP
These aliases are used with the \fB-a\fR option and are case-sensitive.
.SH EXAMPLES
\fBExample 1 \fRSimulating Output
.sp
.LP
The following example simulates output of the common \fBmd5sum\fR program:

.sp
.in +2
.nf
example$ digest -v -a md5 /usr/bin/vi
md5 (/usr/bin/vi) = e4e3588c5212903847c66d36b1a828a5
.fi
.in -2
.sp

.LP
\fBExample 2 \fRDigesting a File
.sp
.LP
The following example generates the \fBsha1\fR digest of the file
\fB/etc/motd\fR:

.sp
.in +2
.nf
example$ digest -a sha1 /etc/motd
9498a4f5303d056ad3ecae826b59f41448d63790
.fi
.in -2
.sp

.LP
\fBExample 3 \fRGenerating a Directory Manifest
.sp
.LP
The following example generates a directory manifest with \fBsha1\fR:

.sp
.in +2
.nf
example$ digest -v -a sha1 /usr/lib/inet/*
sha1 (/usr/lib/inet/certdb) = f6d43e6e395d50db24d34e4af4828598c8918b16
sha1 (/usr/lib/inet/certlocal) = 7f74ba4a019b809c7023212b4bda10d9485e071d
sha1 (/usr/lib/inet/certrldb) = 1f845d30b8d02066647de04311e74549049852ed
sha1 (/usr/lib/inet/dhcp) = e3db5e4ff40a69d13f2497254526c2015d2c37b3
sha1 (/usr/lib/inet/dsvclockd) = b61aad7ed6a0f82145c3c26aedc613ab4a1f032e
sha1 (/usr/lib/inet/in.dhcpd) = 382210180c826fbb2e747236c489062bac8cc30b
sha1 (/usr/lib/inet/in.iked) = be6061fad725d37256e773dc85f8bd5248649463
sha1 (/usr/lib/inet/in.mpathd) = 5bd6bf0340fd5c4cc0c53f2df158302a0e85f9d0
sha1 (/usr/lib/inet/in.ndpd) = fdb768aebe7e5eb4465e1c1bb5e679b496f5c5c6
sha1 (/usr/lib/inet/in.ripngd) = 4f56a0df2d4a252f581a73c2e84143b920d0b66b
sha1 (/usr/lib/inet/ppp) = c96ee458549871a6ffdf2674a888b01d0c9e9740
sha1 (/usr/lib/inet/pppoec) = 5f022498d79dacacd947cddadc64f171822e3dee
sha1 (/usr/lib/inet/pppoed) = 252bd2f0863dbc1b05fffae72821a2a95609b8ad
sha1 (/usr/lib/inet/slpd) = dfa24cc0f0b05f790546d4f0948a9094f7089027
sha1 (/usr/lib/inet/ntpd) = 5b4aff102372cea801e7d08acde9655fec81f07c
.fi
.in -2
.sp

.LP
\fBExample 4 \fRDisplaying a List of Available Algorithms
.sp
.LP
The following example displays a list of available algorithms to digest:

.sp
.in +2
.nf
example$ digest -l
sha1
md5
sha256
sha385
sha512
.fi
.in -2
.sp

.SH EXIT STATUS
The following exit values are returned:
.sp
.ne 2
.na
\fB\fB0\fR\fR
.ad
.RS 6n
Successful completion.
.RE

.sp
.ne 2
.na
\fB\fB>0\fR\fR
.ad
.RS 6n
An error occurred.
.RE

.SH ATTRIBUTES
See \fBattributes\fR(7) for descriptions of the following attributes:
.sp

.sp
.TS
box;
c | c
l | l .
ATTRIBUTE TYPE	ATTRIBUTE VALUE
_
Interface Stability	Committed
.TE

.SH SEE ALSO
.BR cksum (1),
.BR encrypt (1),
.BR mac (1),
.BR libpkcs11 (3LIB),
.BR attributes (7),
.BR pkcs11_softtoken (7),
.BR bart (8),
.BR cryptoadm (8)
